bitkeeper revision 1.1584 (42984f31pkIsDJAxZBlaJgFWP9L2QA)
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 28 May 2005 11:00:01 +0000 (11:00 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 28 May 2005 11:00:01 +0000 (11:00 +0000)
Assembly code cleanups. gcc doesn't need very many hints to get the
operand size and register names correct for both x86/32 and x86/64.
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/flushtlb.c
xen/arch/x86/vmx_vmcs.c
xen/include/asm-x86/bitops.h
xen/include/asm-x86/flushtlb.h
xen/include/asm-x86/processor.h
xen/include/asm-x86/rwlock.h

index 2079bf51c6940de4b0142ae6c0011d23dab4226c..5e132a7a145501b3d24f1903fb784df89c5cc5cd 100644 (file)
@@ -57,7 +57,7 @@ void write_cr3(unsigned long cr3)
      */
 
  skip_clocktick:
-    __asm__ __volatile__ ( "mov"__OS" %0, %%cr3" : : "r" (cr3) : "memory" );
+    __asm__ __volatile__ ( "mov %0, %%cr3" : : "r" (cr3) : "memory" );
 
     /*
      * STEP 3. Update this CPU's timestamp. Note that this happens *after*
index 8f1768602fdbd8e86000f1cdc3610aa9d3e0d2ad..a770855c6ad92a73bbb61070b7253416f3eece61 100644 (file)
@@ -316,11 +316,7 @@ construct_init_vmcs_guest(struct cpu_user_regs *regs,
     error |= __vmwrite(GUEST_EFLAGS, eflags);
 
     error |= __vmwrite(GUEST_INTERRUPTIBILITY_INFO, 0);
-#ifdef __i386__
     __asm__ __volatile__ ("mov %%dr7, %0\n" : "=r" (dr7));
-#else
-    __asm__ __volatile__ ("movq %%dr7, %0\n" : "=r" (dr7));
-#endif
     error |= __vmwrite(GUEST_DR7, dr7);
     error |= __vmwrite(GUEST_VMCS0, 0xffffffff);
     error |= __vmwrite(GUEST_VMCS1, 0xffffffff);
@@ -356,21 +352,13 @@ static inline int construct_vmcs_host(struct host_execution_env *host_env)
     host_env->idtr_base = desc.address;
     error |= __vmwrite(HOST_IDTR_BASE, host_env->idtr_base);
 
-#ifdef __i386__
-    __asm__ __volatile__ ("movl %%cr0,%0" : "=r" (crn) : );
-#else
-    __asm__ __volatile__ ("movq %%cr0,%0" : "=r" (crn) : );
-#endif
+    __asm__ __volatile__ ("mov %%cr0,%0" : "=r" (crn) : );
 
     host_env->cr0 = crn;
     error |= __vmwrite(HOST_CR0, crn); /* same CR0 */
 
     /* CR3 is set in vmx_final_setup_hostos */
-#ifdef __i386__
-    __asm__ __volatile__ ("movl %%cr4,%0" : "=r" (crn) : ); 
-#else
-    __asm__ __volatile__ ("movq %%cr4,%0" : "=r" (crn) : ); 
-#endif
+    __asm__ __volatile__ ("mov %%cr4,%0" : "=r" (crn) : ); 
     host_env->cr4 = crn;
     error |= __vmwrite(HOST_CR4, crn);
     error |= __vmwrite(HOST_EIP, (unsigned long) vmx_asm_vmexit_handler);
index 5abf8d9cff73526582eb5d690243887dd694d654..fd74c0f2e63bfd42ce2db42259cbca8f1f930591 100644 (file)
@@ -357,7 +357,7 @@ static inline unsigned long __scanbit(unsigned long val, unsigned long max)
  */
 static __inline__ unsigned long find_first_clear_bit(unsigned long word)
 {
-       __asm__("bsf"__OS" %1,%0"
+       __asm__("bsf %1,%0"
                :"=r" (word)
                :"r" (~word));
        return word;
@@ -365,7 +365,7 @@ static __inline__ unsigned long find_first_clear_bit(unsigned long word)
 
 static __inline__ unsigned long find_first_set_bit(unsigned long word)
 {
-       __asm__("bsf"__OS" %1,%0"
+       __asm__("bsf %1,%0"
                :"=r" (word)
                :"r" (word));
        return word;
index 810bf345b754c69db084330d4c16d898ad00ebfe..17b44fe3aecc623a9d21716d392510e1e7a0b780 100644 (file)
@@ -70,7 +70,7 @@ static inline unsigned long read_cr3(void)
 {
     unsigned long cr3;
     __asm__ __volatile__ (
-        "mov"__OS" %%cr3, %0" : "=r" (cr3) : );
+        "mov %%cr3, %0" : "=r" (cr3) : );
     return cr3;
 }
 
index e054eb22b045ff5a9388b23683dcf41cad4a3684..3df0ee6a5d8b3a71dac2729166e6f4b6f72f7cd5 100644 (file)
@@ -255,24 +255,24 @@ static inline unsigned int cpuid_edx(unsigned int op)
 #define read_cr0() ({ \
        unsigned long __dummy; \
        __asm__( \
-               "mov"__OS" %%cr0,%0\n\t" \
+               "mov %%cr0,%0\n\t" \
                :"=r" (__dummy)); \
        __dummy; \
 })
 
 #define write_cr0(x) \
-       __asm__("mov"__OS" %0,%%cr0": :"r" ((unsigned long)x));
+       __asm__("mov %0,%%cr0": :"r" ((unsigned long)x));
 
 #define read_cr4() ({ \
        unsigned long __dummy; \
        __asm__( \
-               "mov"__OS" %%cr4,%0\n\t" \
+               "mov %%cr4,%0\n\t" \
                :"=r" (__dummy)); \
        __dummy; \
 })
 
 #define write_cr4(x) \
-       __asm__("mov"__OS" %0,%%cr4": :"r" ((unsigned long)x));
+       __asm__("mov %0,%%cr4": :"r" ((unsigned long)x));
 
 /*
  * Save the cr4 feature set we're using (ie
@@ -284,22 +284,24 @@ extern unsigned long mmu_cr4_features;
 
 static inline void set_in_cr4 (unsigned long mask)
 {
+    unsigned long dummy;
     mmu_cr4_features |= mask;
-    __asm__("mov"__OS" %%cr4,%%"__OP"ax\n\t"
-            "or"__OS" %0,%%"__OP"ax\n\t"
-            "mov"__OS" %%"__OP"ax,%%cr4\n"
-            : : "irg" (mask)
-            :"ax");
+    __asm__ __volatile__ (
+        "mov %%cr4,%0\n\t"
+        "or %1,%0\n\t"
+        "mov %0,%%cr4\n"
+        : "=&r" (dummy) : "irg" (mask) );
 }
 
 static inline void clear_in_cr4 (unsigned long mask)
 {
+    unsigned long dummy;
     mmu_cr4_features &= ~mask;
-    __asm__("mov"__OS" %%cr4,%%"__OP"ax\n\t"
-            "and"__OS" %0,%%"__OP"ax\n\t"
-            "mov"__OS" %%"__OP"ax,%%cr4\n"
-            : : "irg" (~mask)
-            :"ax");
+    __asm__ __volatile__ (
+        "mov %%cr4,%0\n\t"
+        "and %1,%0\n\t"
+        "mov %0,%%cr4\n"
+        : "=&r" (dummy) : "irg" (~mask) );
 }
 
 /*
index 7519f32713ae5fbb1158c922d67835183f06d001..e8c8846cb5fbd1c39e3a42f6d9c39b36579f9118 100644 (file)
                     "js 2f\n" \
                     "1:\n" \
                     ".section .text.lock,\"ax\"\n" \
-                    "2:\tpush"__OS" %%"__OP"ax\n\t" \
-                    "lea"__OS" %0,%%"__OP"ax\n\t" \
+                    "2:\tpush %%"__OP"ax\n\t" \
+                    "lea %0,%%"__OP"ax\n\t" \
                     "call " helper "\n\t" \
-                    "pop"__OS" %%"__OP"ax\n\t" \
+                    "pop %%"__OP"ax\n\t" \
                     "jmp 1b\n" \
                     ".previous" \
                     :"=m" (*(volatile int *)rw) : : "memory")
                     "jnz 2f\n" \
                     "1:\n" \
                     ".section .text.lock,\"ax\"\n" \
-                    "2:\tpush"__OS" %%"__OP"ax\n\t" \
-                    "lea"__OS" %0,%%"__OP"ax\n\t" \
+                    "2:\tpush %%"__OP"ax\n\t" \
+                    "lea %0,%%"__OP"ax\n\t" \
                     "call " helper "\n\t" \
-                    "pop"__OS" %%"__OP"ax\n\t" \
+                    "pop %%"__OP"ax\n\t" \
                     "jmp 1b\n" \
                     ".previous" \
                     :"=m" (*(volatile int *)rw) : : "memory")